环境

  • CentOS版本:CentOS 7.4
  • IP:118.190.144.33,47.104.79.18,47.104.171.222

注意事项

  • 安裝 GCC 编译工具 不然会有编译不过的问题
yum install -y gcc g++ gcc-c++ make
# 升级所有的包,防止出现版本过久不兼容问题
yum -y update
  • 安装telnet

    ==需要通过telnet验证端口是否可以访问==

$ rpm -qa | grep telnet #检查是否安装了telnet
$ yum install xinetd telnet telnet-server -y

关闭防火墙 节点之前需要开放指定端口,为了方便,生产不要禁用

$ firewall-cmd --state #查看防火墙是否运行  or  systemctl list-unit-files|grep firewalld.service
$ service iptables stop  # 关闭命令:centos 6.x
$ systemctl stop firewalld.service # 停止firewall centos 7.x

安装 Redis

下载,解压,编译安装

$ cd /opt
$ wget http://download.redis.io/releases/redis-4.0.7.tar.gz
$ tar xzf redis-4.0.7.tar.gz
$ cd redis-4.0.7
$ make
$ make test #测试编译是否成功
$ make install [prefix=/path] #完成安装

如果因为上次编译失败,有残留的文件

make distclean

安装遇到的异常

  • ==You need tcl 8.5 or newer in order to run the Redis test==异常解决方法

    make test 发生该异常

$ wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz  
$ sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/  
$ cd  /usr/local/tcl8.6.1/unix/  
$ sudo ./configure  
$ sudo make  
$ sudo make install 

redis.conf

#bind 127.0.0.1  注释掉bind

#设置成后台进程运行redis
daemonize yes 

#保护模式修改为:no
protected-mode no 

# Specify the log file name. Also the empty string can be used to force
# Redis to log on the standard output. Note that if you use standard
# output for logging but daemonize, logs will be sent to /dev/null
# 修改日志生成路径
logfile /opt/redis-masterslave/log/redis.log

Master-slave

角色 主机
Master 118.190.144.33
Slave 47.104.79.18
Slave 47.104.171.222

redis.conf

################################# REPLICATION #################################

# Master-Slave replication. Use slaveof to make a Redis instance a copy of
# another Redis server. A few things to understand ASAP about Redis replication.
#
# 1) Redis replication is asynchronous, but you can configure a master to
#    stop accepting writes if it appears to be not connected with at least
#    a given number of slaves.
# 2) Redis slaves are able to perform a partial resynchronization with the
#    master if the replication link is lost for a relatively small amount of
#    time. You may want to configure the replication backlog size (see the next
#    sections of this file) with a sensible value depending on your needs.
# 3) Replication is automatic and does not need user intervention. After a
#    network partition slaves automatically try to reconnect to masters
#    and resynchronize with them.
#
# 只需要配置slave机器
slaveof 118.190.144.33 6379

验证是否成功 info replication

127.0.0.1:6379> info replication
# Replication
role:slave
master_host:118.190.144.33
master_port:6379
master_link_status:up  # up:表示成功
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:299
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:0143f8f51faa2abbd3130e5b6e607063c8cf26b3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:299
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:299

哨兵(sentinel)


rexwong
1 声望0 粉丝